package com.newlink.building.userinfo.mvp.contract

import com.newlink.building.common_base.base.IModel
import com.newlink.building.common_base.base.IPresenter
import com.newlink.building.common_base.base.IView
import com.newlink.building.common_base.model.bean.*
import io.reactivex.Observable

/**
 * @Author: Jake
 * @Date: 2023-12-11
 * @Description:
 */
interface Module_UserInfo_LocalMsgContract {
    interface Model : IModel {
        fun deleteAllMessageList(request: MessageCleanRequest): Observable<HttpResult<DefaultData>>

        fun getMessageList(request: MessageListRequest): Observable<HttpResult<MessageListData>>
    }

    interface View : IView {
        fun getMessageListSuccess(list: MutableList<MessageListArrayData>)
        fun getMessageListFail()

        fun deleteAllMessageListSuccess()
        fun deleteAllMessageListFail()
    }

    interface Presenter : IPresenter<View> {
        fun deleteAllMessageList(request: MessageCleanRequest)

        fun getMessageList(request: MessageListRequest)
    }
}